package com.google.code.p.restrpc.directory.service;

import com.google.code.p.restrpc.directory.Directory;
import com.google.code.p.restrpc.directory.RemoteServiceDefinition;

/**
 * @author dz
 */
public interface DirectoryService extends Directory {
    
    /**
     * @param rsd
     */
    public void register(RemoteServiceDefinition rsd);
    
    /**
     * @param rsd
     */
    public void unregister(RemoteServiceDefinition rsd);
    
    /**
     * @param rsd
     */
    public void disable(RemoteServiceDefinition rsd);
    
    /**
     * @param rsd
     */
    public void enable(RemoteServiceDefinition rsd);
    
    /**
     * @param address
     * @param port
     */
    public boolean isRegistered(String address, int port);
    
    /**
     * @param address
     * @param port
     */
    public void activate(String address, int port);
    
    /**
     * @param address
     * @param port
     */
    public void unregisterAll(String address, int port);
    
}
